Breaking Changes

On this page:

Itential Automation Platform

BREAKING CHANGE for 2021.2

The following are breaking changes for the 2021.2 release.

Removal of Adapter Redis due to scheduled deprecation

The Redis adapter has been fully deprecated, and will not be included in the 2021.2 release.

The table below shows a list of adapter calls that have been removed from IAP. Our policy is to provide a deprecation notice two (2) release cycles in advance (at a minimum) before the API is removed. This list represents all deprecations announced in the 2020.2 release.

What should I do?

Review any custom apps and adapters that might reference any adapter calls on the list and change them to the replacement call (or remove them if no replacement call is given.)

Method Description Deprecation Release Scheduled Removal Release Replacement
stash Save data for a given key. 2020.2 2021.2 Consider if an Integration can be used.
fetch Get data for a given key. 2020.2 2021.2 Consider if an Integration can be used.
fetchAll Get all data for any key within a specific grouping. 2020.2 2021.2 Consider if an Integration can be used.
purge Delete all data for a given key within a specific grouping. 2020.2 2021.2 Consider if an Integration can be used.
purgeAll Delete all data for any key within a specific grouping. 2020.2 2021.2 Consider if an Integration can be used.

Breaking change for /schema APIs

A breaking change has been added to the following four APIs:

  1. GET /schema/profiles
  2. GET /schema/integrations/:name
  3. GET /schema/adapters/:name
  4. GET /schema/applications/:name

Previously, each of these APIs would return an object which represented a JSON schema for the requested document. However, in 2021.2 each of these APIs will now return a document with the following structure:

{
  "schema": {},
  "decorators": []
}

The previous JSON schema is now returned within the schema key, and a new property called decorators has been added. This property is used for handling encryption of keys within schemas.

What should I do?

Review any custom apps and adapters that might reference any APIs on the list. Be sure the schema key is now used to query out the schema property, instead of using the entire returned document as a JSON schema.

API removal due to scheduled deprecations

The table below shows a list of APIs that have been removed from IAP. Our policy is to provide a deprecation notice two (2) release cycles in advance (at a minimum) before the API is removed. This list represents all deprecations announced in the 2020.2 release.

What should I do?

Review any custom apps and adapters that might reference any APIs on the list and change them to the replacement call (or remove them if no replacement call is given.)

Item Description Deprecation Release Scheduled Removal Release Replacement
DELETE /config/profile/delete/:id Deletes a profile. 2020.2 2021.2 DELETE /profiles/:id
DELETE /config/services/delete/:name Deletes a service config from the system. 2020.2 2021.2 DELETE /adapters/:name
DELETE /providers/:id Deletes an adapter from the system. 2020.2  2021.2 DELETE /adapters/:name
GET /config/active_services Get all the active services running on the system. 2020.2  2021.2 GET /adapters or /applications
GET /config/active_adapters Get all the active adapters running on the system. 2020.2  2021.2 GET /adapters
GET /config/profiles Get all profiles in IAP. 2020.2 2021.2 GET /profiles
GET /config/profiles/sync Determines if active profile is in sync with system. 2020.2 2021.2 GET /profiles
GET /config/property Get the properties of an active profile. 2020.2 2021.2 GET /profiles
GET /config/property/id/:id Get the properties of a profile. 2020.2 2021.2 GET /profiles/:id
GET /config/property/schema Get the properties schema. 2020.2 2021.2 GET /schema/profiles
GET /config/services Get all the service configs on a system. 2020.2 2021.2 GET /adapters or /applications
GET /config/services/schema Gets the service config schema. 2020.2  2021.2 GET /schema/adapters/:name or /schema/applications/:name
GET /config/services/sync Determines which services are in sync with the system. 2020.2  2021.2 GET /adapters or /applications
GET /health/modules Gets the health of each service. 2020.2 2021.2 GET /health/adapters or /health/applications
GET /health/module/:module Gets the health of one service. 2020.2 2021.2 GET /health/adapters/:name or health/applications/:name
GET /modules/stop/:module Stops a running service. 2020.2 2021.2 PUT /adapters/:name/stop or /applications/:name/stop
GET /modules/start/:module Starts a service. 2020.2 2021.2 PUT /adapters/:name/start or /applications/:name/start
GET /modules/restart/:module Restart a running service. 2020.2 2021.2 PUT /adapters/:name/restart or /applications/:name/restart
GET /providers Get all the adapters on the system. 2020.2  2021.2 GET /adapters
GET /providers/:id Gets an adapter by id. 2020.2 2021.2 GET /adapters/:name
GET /providers/:id/schema Gets the specific schema for that particular adapter type. 2020.2 2021.2 GET /schema/adapters/:name
GET /providers/schema Gets the schema for adapters. 2020.2  2021.2 GET /schema/adapters/:name
POST /config/profile/add Creates a new profile. 2020.2 2021.2 POST /profiles
POST /config/profiles/change Changes the active profile. 2020.2 2021.2 PUT /profiles/:id/active
POST /config/property/new Adds a property to a profile. 2020.2 2021.2 PUT /profiles/:id
POST /config/property/update Updates a profile property. 2020.2 2021.2 PUT /profiles/:id
POST /config/services/create Creates a new service config. 2020.2 2021.2 POST /adapters
POST /config/services/save Updates an existing service config. 2020.2  2021.2 PUT /adapters/:name or /applications/:name
POST /modules/load Creates a new app during runtime. 2020.2 2021.2 None
POST /modules/setLogging Set the log levels for a service during runtime. 2020.2 2021.2 PUT /adapters/:name/loglevel or /applications/:name/loglevel
POST /providers/schema/update Gets the current schema for each type of adapter. 2020.2 2021.2 GET /schema/adapters/:name
POST /appUpdate/changeLog/ Gets the changelog for a service. 2020.2 2021.2 GET /adapters/:name/changelogs /application/:name/changelogs
PUT /providers/:id Creates or updates an adapter. 2020.2 2021.2 PUT /adapters/:name

BREAKING CHANGE for 2021.1.1 -> 2021.2.0

Form fields with WHEN xpath condition will not get dropped from payload

As part of the 2021.2 release and maintenance releases 21.1.2 and 20.2.7, the form fields with xpath conditions will be evaluated only if the fields that are part of the expression holds any value. If the fields do not have any value in forms they will be considered as non-existent while evaluating the xpath expression. As a result of this, the exported data from forms may or may not have certain fields in the payload compared to data exported from forms in previous versions. It may also affect certain validations that are based on xpath expressions.

Child Job Loop validation of Transformations

Before 2021.1.2, if a childJob task used a loop with a transformation, and that transformation no longer existed on the system, an error would not occur until the childJob task ran. In 2021.2.0, this will now cause a validation error, putting the workflow into draft status and disallowing it from being started.

What should I do?

If an error appears related to missing transformations on a child job loop after saving the workflow or starting a job, it is recommended to update the specified childJob task with a different transformation. Alternatively, this can be fixed by re-importing the transformation, if possible.

Querying outgoing variables for childJob task that has loop properties (POST /workflow_engine/getTask)

Starting in the 2021.1.2 maintenance release, if a childJob task has loop properties set and is queried for using the POST /workflow_engine/getTask API, the returned data structure is changed to return an array of job _ids in the output's loop property. Each _id in the array references the _id of each child job started by the task. This was changed because the outgoing loop data for the childJob task can quickly become too large to handle in the platform. No other APIs were modified but will instead dereference the loop array before returning if the childJob loop task was queried for.

What should I do?

To return the full output of a childJob loop task, you can use the POST /workflow_engine/tasks/search API, which dereferences the data and returns the full output. Otherwise, the data will need to be dereferenced by getting each individual job in the array and querying for the output variables and status.

BREAKING CHANGE for 2021.1.0 -> 2021.2

Removal of "progress" key from checkIndexes API

As part of the 2021.1.1 maintenance release and 2021.2 release, the "progress" key is no longer included as part of the return data from the checkIndexes, or GET /indexes/:collection/status API. The "inProgress" key can be used to determine whether the indexes are currently being created, but the return object no longer includes data about what percentage of the index creation has been completed. Refer to the user guide of indexing for more information about configuring indexes within IAP.